<?php

class TareaController extends AweController {

    /**
     * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
     * using two-column layout. See 'protected/views/layouts/column2.php'.
     */
    public $layout = '//layouts/column2';

    public function filters() {
        return array(
            array('CrugeAccessControlFilter'),
        );
    }

    /**
     * Displays a particular model.
     * @param integer $id the ID of the model to be displayed
     */
    public function actionView($id) {
        //peticion de view por ajax
        $model = $this->loadModel($id);
        if (Yii::app()->request->isAjaxRequest && !isset($_GET['ajax'])) {
            //envio de la vista parcial
            $this->renderPartial('_view_modal', array(
                'model' => $model,
                    ), false, true);
        } else {
//            echo json_encode($result);
            $this->render('view', array(
                'model' => $model,
                'datos' => $this->datosObjetivosTarea($id),
            ));
        }
    }

    /**
     * recupera todos los contactos de un operador
     * para luego asignar en un 
     * @author Miguel Alba <malba@tradesystem.com.ec>
     */
    public function actionOperadorContactos() {


        if ($_POST['Tarea']['owner_id']) {
            $contactos = CampaniaClientesOwner::model()->contactosUsuarioCampania($_POST['Tarea']['entidad_id'], $_POST['Tarea']['owner_id']);
            $contactosChtml = CHtml::listData($contactos, 'id', 'nombrecompleto');
            if (!empty($contactosChtml)) {
                echo CHtml::tag('option', array('value' => ''), CHtml::encode('- Ninguno -'), true);
                foreach ($contactosChtml as $value => $name) {
                    echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
                }
            } else {
                echo CHtml::tag('option', array('value' => ''), CHtml::encode('- Sin Contactos -'), true);
            }
        }
    }

    /**
     * Creates a new model.
     * If creation is successful, the browser will be redirected to the 'view' page.
     */
    public function actionCreate($tipo_entidad = null, $id_entidad = null, $cuenta_id = null) {

        $result = array();
        $model = new Tarea;
        $model->owner_id = Yii::app()->user->id;
//        $model->accion = 'SMS'; // esta variable se quemo debido a que el formulario modal de asignar tareas a la campaña usa un checkbox para las acciones

        $model->permisos = Tarea::PERMISOS_ALL;
        $model->usuario_creacion_id = Yii::app()->user->id;
        $this->performAjaxValidation($model, 'tarea-form');
        /**
         * Carga de formularios tanto por render como renderPartial
         */
        //petición del formulario por ajax renderPartial
        if (Yii::app()->request->isAjaxRequest) {
            $validadorPartial = false;
            $model->entidad_tipo = $tipo_entidad;
            $model->entidad_id = $id_entidad;
            $tipo_entidad == $model->getEntidadTipoContacto() ? $model->contacto_id = $id_entidad : $model->contacto_id;
            if (isset($_POST['Tarea'])) {
                $model->attributes = $_POST['Tarea'];
                $model->accion = $_POST['Tarea']['accion'];
                $result = $this->Crear($model);
                if (!$result['success']) {
                    $result['mensage'] = "Error al actualizar la fecha de la oportunidad";
                }
                $validadorPartial = TRUE;
                echo json_encode($result);
            }

            if (!$validadorPartial) {
                $this->renderPartial('_form_modal', array('model' => $model,
                    'cuenta_id' => $cuenta_id), false, true);
            }
        } else {

            if (isset($_POST['Tarea'])) {
                $model->attributes = $_POST['Tarea'];
                $result = $this->Crear($model);
                if ($result['success']) {
                    $model = new Tarea;
                    $this->redirect('admin', array('model' => $model));
                }
            }
            $this->render('create', array(
                'model' => $model,
            ));
        }
    }

    /**
     * @author Mauricio Chamorro <mchamorro@tradesystem.com.ec>
     *  Permite registrar las tareas para las campañas
     * @param type $tipo_entidad 
     * @param type $id_entidad
     * @param type $cuenta_id
     */
    public function actionCreateTareaCampania($tipo_entidad = null, $id_entidad = null, $cuenta_id = null) {
        $result = array();
        $model = new Tarea;

//        $model->owner_id = Yii::app()->user->id;
//        $model->owner_id = Yii::app()->user->id;
        $model->permisos = Tarea::PERMISOS_ALL;
        $model->usuario_creacion_id = Yii::app()->user->id;
        $this->performAjaxValidation($model);
//        var_dump($_POST);
//        die();
        /**
         * Carga de formularios tanto por render como renderPartial
         */
        //petición del formulario por ajax renderPartial

        if (Yii::app()->request->isAjaxRequest) {
//             $model->owner_id = Yii::app()->user->id;
            $validadorPartial = false;
            $model->entidad_tipo = $tipo_entidad;
            $model->entidad_id = $id_entidad;
            $tipo_entidad == $model->getEntidadTipoContacto() ? $model->contacto_id = $id_entidad : $model->contacto_id;

            if (isset($_POST['Tarea'])) {
                if (isset($_POST['Tarea']['accion'])) {

                    $model->attributes = $_POST['Tarea'];

//                    $model->contacto_id = $_POST['cliente_id'];
//                    var_dump($model->attributes);
////                    die();
                    $result = $this->Crear($model);
                }

                if (!$result['success']) {
                    $result['mensage'] = "Error al guardar la tarea";
                }
                $validadorPartial = TRUE;
                echo json_encode($result);
            }
            if (!$validadorPartial) {
                $this->renderPartial('_tarea_campania_modal', array('model' => $model,
                    'cuenta_id' => $cuenta_id, 'id_entidad' => $id_entidad), false, true);
            }
        } else {
            if (isset($_POST['Tarea'])) {
                $model->attributes = $_POST['Tarea'];

//                $model->contacto_id = $_POST['cliente_id'];
                $result = $this->Crear($model);
                if ($result['success']) {
                    $model = new Tarea;
                    $this->redirect('admin', array('model' => $model));
                }
            }
            $this->render('create', array(
                'model' => $model,
            ));
        }
    }

    /**
     *  @author Mauricio Chamorro <mchamorro@tradesystem.com.ec>
     *  Permite actualizar las tareas para las campañas
     */
    public function actionUpdateTareaCampania($id) {
        $model = $this->loadModel($id);
        $model->fecha_fin = Util::FormatDate($model->fecha_fin, "d/m/Y");
        $model->porcentaje = $model->etapa->porcentaje . '%';
        $model->usuario_creacion_id = Yii::app()->user->id;
        $this->performAjaxValidation($model, 'tarea-form');
        $result = array();
        $asignadoactual = $model->owner_id;
        $contactosOperadores = array();
        $contactoOperadorSeleccionado = array();
        if (Yii::app()->request->isAjaxRequest) {

            $validadorPartial = false;
            if (isset($_POST['Tarea'])) {
                $asignadoactual = $model->owner_id;

                $model->attributes = $_POST['Tarea'];
//                var_dump($model->attributes);
//                die();
//                if ($_POST['Tarea']['contacto_id'] == 0) { //valida si se registra un cliente
//                    $model->contacto_id = NULL;
//                }
//                    {
//                    $model->contacto_id=$_POST['cliente_id'];
//                }

                $result = $this->Update($model, $asignadoactual);
                if (!$result['success']) {
                    $result['mensage'] = "Error al actualizar la fecha de la oportunidad";
                }
                $validadorPartial = TRUE;
                echo json_encode($result);
            }

            if (!$validadorPartial) {

                if ($model->owner_id != NULL) {//selecciono un responsable
                    if ($model->contacto_id != NULL) {//selecciono un contacto enviar la informacion de el
                        $contactosOperadores = CampaniaClientesOwner::model()->contactosUsuarioCampania($model->entidad_id, $model->owner_id);
                        $contactoOperadorSeleccionado = CampaniaClientesOwner::model()->contactosUsuarioCampania($model->entidad_id, $model->owner_id, $model->contacto_id);
                    } else {
                        $contactosOperadores = CampaniaClientesOwner::model()->contactosUsuarioCampania($model->entidad_id, $model->owner_id);
                    }
                }

                $this->renderPartial('_tarea_campania_modal', array('model' => $model, 'contactosOperadores' => $contactosOperadores, 'contactoOperadorSeleccionado' => $contactoOperadorSeleccionado), false, true);
            }
        } else {
            
        }
    }

    /**
     * Updates a particular model.
     * If update is successful, the browser will be redirected to the 'view' page.
     * @param integer $id the ID of the model to be updated
     */
    public function actionUpdate($id) {
        $model = $this->loadModel($id);
        $model->fecha_fin = Util::FormatDate($model->fecha_fin, "d/m/Y");
        $model->porcentaje = $model->etapa->porcentaje . '%';
        $model->usuario_creacion_id = Yii::app()->user->id;
        $this->performAjaxValidation($model, 'tarea-form');
        $result = array();
        $asignadoactual = $model->owner_id;
        if (Yii::app()->request->isAjaxRequest) {
            $validadorPartial = false;
            if (isset($_POST['Tarea'])) {
                $asignadoactual = $model->owner_id;
                $model->attributes = $_POST['Tarea'];
                $result = $this->Update($model, $asignadoactual);
                if (!$result['success']) {
                    $result['mensage'] = "Error al actualizar la fecha de la oportunidad";
                }
                $validadorPartial = TRUE;
                echo json_encode($result);
            }
            if (!$validadorPartial) {
                $this->renderPartial('_form_modal', array('model' => $model), false, true);
            }
        } else {
            if (isset($_POST['Tarea'])) {
                $model->attributes = $_POST['Tarea'];
                $result = $this->Update($model, $asignadoactual);
                if ($result['success']) {
                    $model = new Tarea;
                    $this->redirect('admin', array('model' => $model));
                }
            }
            $this->render('create', array(
                'model' => $model,
            ));
        }
    }

    /**
     * Deletes a particular model.
     * If deletion is successful, the browser will be redirected to the 'admin' page.
     * @param integer $id the ID of the model to be deleted
     */
    public function actionDelete($id) {
        if (Yii::app()->request->isPostRequest) {
            $model = $this->loadModel($id);

            // we only allow deletion via POST request
            $FechaHoraEliminacion = Util::FechaActual();
            Tarea::model()->updateByPk($id, array('estado' => Tarea::ESTADO_INACTIVO,
                'usuario_actualizacion_id' => Yii::app()->user->id,
                'fecha_actualizacion' => $FechaHoraEliminacion));

            // Crear registro de actividad
            Actividad::registrarActividad($model, Actividad::TIPO_DELETE);


            // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
            if (!isset($_GET['ajax']))
                $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
        } else
            throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
    }

    /**
     * Lists all models.
     */
    public function actionIndex() {
        $dataProvider = new CActiveDataProvider('Tarea');
        $this->render('index', array(
            'dataProvider' => $dataProvider,
        ));
    }

    /**
     * Manages all models.
     */
    public function actionAdmin() {
        $model = new Tarea('search');
        //etapa con porcentaje 100%
        $Etapa_100 = TareaEtapa::model()->findByAttributes(array('porcentaje' => 100));
        $model->unsetAttributes(); // clear any default values
        $elemento = "validar";
        if (isset($_GET['search'])) {
            $elemento = $_GET['elemet'];
            $model->attributes = $this->assignParams($_GET['search']);
        }
        if ($model->activos()->findAll()) {
            $this->render('admin', array('Etapa_100' => $Etapa_100, 'elemento' => $elemento, 'model' => $model));
        } else {
            $this->render('empty', array('model' => $model));
        }
    }

    /**
     * Returns the data model based on the primary key given in the GET variable.
     * If the data model is not found, an HTTP exception will be raised.
     * @param integer the ID of the model to be loaded
     */
    public function loadModel($id, $modelClass = __CLASS__) {
        $model = Tarea::model()->activos()->findByPk($id);
        if ($model === null)
            throw new CHttpException(404, 'The requested page does not exist.');
        return $model;
    }

    /**
     * Performs the AJAX validation.
     * @param CModel the model to be validated
     */
    protected function performAjaxValidation($model, $form = null) {
        if (isset($_POST['ajax']) && $_POST['ajax'] === 'tarea-form') {
            echo CActiveForm::validate($model);
            Yii::app()->end();
        }
    }

    public function actionKanban() {
        $etapas = TareaEtapa::model()->activos()->orden()->findAll();
        if (Yii::app()->request->isAjaxRequest) {
            $result['success'] = true;
            $result['html'] = $this->renderPartial('_kanban', array('etapas' => $etapas), TRUE, TRUE);
            echo json_encode($result);
        } else {

            $this->render('kanban', array(
                'etapas' => $etapas,
            ));
        }
    }

    public function actionUpdateTarEt($id_data, $id_etapaNw) {
        Tarea::model()->updateByPk($id_data, array('etapa_id' => $id_etapaNw));
    }

    public function actionExportExcel() {
        $modelTareas;
        if ($_POST) {
            if ($_POST['Tareas'] == 'todos') {
                $modelTareas = Tarea::model()->activos()->findAll();
            } else {
                (array) $tareas = explode(',', $_POST['Tareas']);
                if (count($tareas) > 0) {
                    $modelTareas = Tarea::model()->activos()->findAllByPk($tareas);
                }
            }
        }

        $objExcel = new PHPExcel();
//
        $objExcel->setActiveSheetIndex(0) // Titulo del reporte
                ->setCellValue('A1', 'Nombre')  //Titulo de las columnas
                ->setCellValue('B1', 'Etapa')
                ->setCellValue('C1', 'Accion')
                ->setCellValue('D1', 'Fecha Límite')
                ->setCellValue('E1', 'Hora Límite')
                ->setCellValue('F1', 'Descripción');
        $id = 2;
        foreach ($modelTareas as $tar) {
            $objExcel->setActiveSheetIndex(0)
                    ->setCellValue('A' . $id, $tar->nombre)
                    ->setCellValue('B' . $id, $tar->etapa->nombre)  //Titulo de las columnas
                    ->setCellValue('C' . $id, $tar->accion)
                    ->setCellValue('D' . $id, $tar->fecha_fin)
                    ->setCellValue('E' . $id, $tar->hora_fin)
                    ->setCellValue('F' . $id, $tar->descripcion)
            ;
            $id++;
        }
        for ($i = 'A'; $i <= 'N'; $i++) {
            $objExcel->setActiveSheetIndex(0)->getColumnDimension($i)->setAutoSize(TRUE);
        }
        $objExcel->getActiveSheet()->setTitle('Tareas');
//        
////// Se activa la hoja para que sea la que se muestre cuando el archivo se abre
        $objExcel->setActiveSheetIndex(0);
//////
////// Inmovilizar paneles
        $objExcel->getActiveSheet(0)->freezePane('A4');
        $objExcel->getActiveSheet(0)->freezePaneByColumnAndRow(1, 2);
//        // Se manda el archivo al navegador web, con el nombre que se indica, en formato 2007
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        header('Content-Disposition: attachment;filename="ReporteTareas.xlsx"');
        header('Cache-Control: max-age=0');

        $objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
        $objWriter->save('php://output');
        exit;
    }

    /**
     * Carga de id segunla tabla 
     */
    public function actionCargarEntidades() {
        $table = $_POST['Tarea']['entidad_tipo'];
        $model = ucfirst($table);

        $data = $model::model()->activos()->findAll();

        $data = CHtml::listData($data, 'id', $model::representingColumn());

        foreach ($data as $value => $name) {
            echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
        }
    }

    /**
     * Asigna los parametro de busqueda para el widget search.
     * @param {array} $params lo envia desde la vista.
     * @return {array}
     */
    public function assignParams($params) {
        $result = array();
        if ($params['filters'][0] == 'all') {
            foreach (Tarea::model()->searchParams() as $param) {
                $result[$param] = $params['value'];
            }
        } else {
            foreach ($params['filters'] as $param) {
                $result[$param] = $params['value'];
            }
        }
        return $result;
    }

    /**
     * Displays a particular model.
     * @param integer $id the ID of the model to be displayed
     */
    public function actionViewObjetivos($id) {
        //peticion de view por ajax
        $model = $this->loadModel($id);
        if (Yii::app()->request->isAjaxRequest) {
            //envio de la vista parcial
            $this->renderPartial('_tarea_objetivo_modal', array(
                'model' => $model,
                'datos' => $this->datosObjetivosTarea($id),
                    ), false, true);
        }
    }

    /*     * ************************************************funciones Ajax************************************** */

    /**
     * @author Alex Yepez <ayepez@tradesystem.com.ec>
     * @param type $id_etapa
     * Retorna el porcentaje de la etapa por ajax 
     */
    public function actionAjaxGetPorcentaje($id_etapa) {
        if ($id_etapa) {
            $modelProb = TareaEtapa::model()->find(array('condition' => 'id = :id', 'params' => array(':id' => $id_etapa)));
            echo $modelProb['porcentaje'];
        }
    }

    /**
     * @author Alex Yepez <ayepez@tradesystem.com.ec>
     * @param type $id
     * @param type $fecha
     * actualiza la fecha por ajax
     */
    public function actionAjaxUpdateFecha($id, $fecha) {
        $result = array();
        if (Yii::app()->request->isAjaxRequest) {
            $model = $this->loadModel($id);
            $model->fecha_fin = $fecha;
            $result = $this->Update($model);
            echo json_encode($result);
        }
    }

//TODO: comertar función @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
    public function actionAjaxCambioEstadoObjetivo() {
        if (Yii::app()->request->isAjaxRequest) {
            $tareaObjetivo = TareaObjetivo::model()->findByPk($_POST['id']);
            $tareaObjetivo->realizado = ($tareaObjetivo->realizado == 1) ? 0 : 1;
            $tareaObjetivo->save();
            echo json_encode($this->datosObjetivosTarea($tareaObjetivo->tarea->id));
        }
    }

    public function actionAjaxCambioEstado() {
        if (Yii::app()->request->isAjaxRequest) {
            $tareaObjetivo = TareaObjetivo::model()->findByPk($_POST['id']);
            $tareaObjetivo->realizado = ($tareaObjetivo->realizado == 1) ? 0 : 1;
            $tareaObjetivo->save();
//            echo json_encode();
        }
    }
    
    
    /**
     * @author Alex Yepez <ayepez@tradesystem.com.ec>
     * Fucnion ajax para el guardado de tareas de rellamada
     * @param type $contacto_id
     * @param type $entidad_tipo
     * @param type $entidad_id
     */
    public function actionAjaxCreteFromLlamada($contacto_id, $entidad_tipo, $entidad_id) {
        if (Yii::app()->request->isAjaxRequest) {
            $result = array();
            $model = new Tarea();
            //precarga de atributos
            $model->accion = Tarea::ACCION_LLAMADA;
            $model->owner_id = Yii::app()->user->id;
            $model->usuario_creacion_id = Yii::app()->user->id;
            $model->entidad_tipo = $entidad_tipo;
            $model->entidad_id = $entidad_id;
            $contacto = Contacto::model()->findByPk($contacto_id);
            $model->nombre = 'Llamada  a ' . $contacto->nombre_completo;
            $model->contacto_id = $contacto_id;
            $model->permisos = Tarea::PERMISOS_OWNER;
            //validacion por ajax
            if (isset($_POST['ajax']) && $_POST['ajax'] === '#tarea-form') {
                $model->attributes = $_POST['Tarea'];
                $result['success'] = $model->validate();
                if (!$result['success']) {
                    $result['errors'] = $model->errors;
                    echo json_encode($result);
                    Yii::app()->end();
                }
            }
            //save
            if (isset($_POST['Tarea'])) {
                $model->attributes = $_POST['Tarea'];
                $result['success'] = $model->save();
                $result['data']['id'] = $model->id;
                echo CJSON::encode($result);
            } else {
                //render partial de formulario
                $this->renderPartial('_form_modal_llamada', array(
                    'model' => $model,
                        ), false, true);
            }
        }
    }

//TODO: comertar función @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
    public function actionGuardarObjetivo() {
        $model = new TareaObjetivo;
        $result = array();
//        $this->performAjaxValidation($model, 'tarea-objetivo-form');
//        if (isset($_POST['TareaObjetivo'])) {
        if (Yii::app()->request->isAjaxRequest) {
            if (isset($_POST['TareaObjetivo'])) {
                $model->attributes = $_POST['TareaObjetivo'];
                if ($model->save()) {

                    $result['success'] = true;
                    $result['texto'] = 'Objetivo creado safisfactoriamente.';
                    $result['tarea_id'] = $model->tarea->id;
                    $datosObjTarea = $this->datosObjetivosTarea($model->tarea->id);
                    $result['porcentaje_no_realizadas'] = $datosObjTarea['porcentaje_no_realizadas'];
                } else {
                    $result['success'] = false;
                    $result['error'] = 'En objetivo no puede estar vacio.';
                }
                echo json_encode($result);
                return;
            } else {
                $result['success'] = false;
                $result['error'] = 'Datos incompletos.';
            }
            return;
        }
//        $model->attributes = $_POST['TareaObjetivo'];
//        if ($model->save()) {
//            $result['success'] = true;
//            $result['texto'] = 'Objetivo creado safisfactoriamente.';
//        } else {
//            $result['success'] = false;
//            $result['error'] = 'Problemas al crear Objetivo.';
//        }
//        }
//        echo json_encode($result);
//        $this->render('create', array(
//            'model' => $model,
//        ));
    }

    /**
     * Deletes a particular model.
     * If deletion is successful, the browser will be redirected to the 'admin' page.
     * @param integer $id the ID of the model to be deleted
     */
    public function actionDeleteObjetivo($id) {
        if (Yii::app()->request->isPostRequest) {
            $result = array();
            // we only allow deletion via POST request
            $objetivo = TareaObjetivo::model()->findByPk($id);
            $tarea_id = $objetivo->tarea->id;
            $objetivo->delete();
            $porcentajeObjTares = $this->datosObjetivosTarea($tarea_id);
            echo $porcentajeObjTares['porcentaje_no_realizadas'];

            // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
            if (!isset($_GET['ajax']))
                $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
        } else
            throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
    }

    /*     * *******************************************funciones internas******************************* */

    /**
     * @author Alex Yepez <ayepez@tradesystem.com.ec>
     * @param type $model
     * @return array $b_guardado
     * Crea una nueva oportunidad
     */
    private function Crear($model) {
        $b_guardado = array();
        $model->estado = Tarea::ESTADO_ACTIVO;
        if ($model->fecha_fin) {

            $model->fecha_fin = Util::FormatDate($model->fecha_fin, "Y/m/d");
        }
        $b_guardado['success'] = $model->save();
        if ($b_guardado['success']) {
            Actividad::registrarActividad($model, Actividad::TIPO_CREATE);



            $asignadonuevo = $model->owner_id;
            if ($asignadonuevo != Yii::app()->user->id) {
                Alerta::registrarAlertaA($model, Alerta::ASIGNADO);
            }
        }
        return $b_guardado;
    }

    /**
     * 
     * @param type $model
     * @return type
     */
    private function Update($model, $asignadoactual = null) {
        $b_guardado = array();
        if ($model->fecha_fin) {
            $model->fecha_fin = Util::FormatDate($model->fecha_fin, "Y/m/d");
        }
        $model->usuario_actualizacion_id = Yii::app()->user->id;
        $b_guardado['success'] = $model->save();

        if ($b_guardado['success']) {
            $asignadonuevo = $model->owner_id;

            // Crear registro de actividad
            Actividad::registrarActividad($model, Actividad::TIPO_UPDATE);

            if (($asignadoactual != $asignadonuevo) && $asignadoactual != null) {

                if ($asignadonuevo == Yii::app()->user->id) {
                    Alerta::registrarAlertaNA($model, $asignadoactual, Alerta::NOASIGNADO);
                }
                if ($asignadoactual == Yii::app()->user->id) {
                    Alerta::registrarAlertaA($model, Alerta::ASIGNADO);
                }
                if ($asignadonuevo != Yii::app()->user->id && $asignadoactual != Yii::app()->user->id) {
                    Alerta::registrarAlertaNA($model, $asignadoactual, Alerta::NOASIGNADO);
                    Alerta::registrarAlertaA($model, Alerta::ASIGNADO);
                }
            }
        }
        return $b_guardado;
    }

//TODO: comertar función @autor Armando Maldonado <amaldonado@tradesystem.com.ec>
    private function datosObjetivosTarea($tarea_id) {
        $resultado = array(
            'porcentaje_no_realizadas' => (count(TareaObjetivo::model()->de_tarea($tarea_id)->findAll()) != 0) ? (int) ( 100 - count(TareaObjetivo::model()->de_tarea($tarea_id)->no_realizadas()->findAll()) * (100 / count(TareaObjetivo::model()->de_tarea($tarea_id)->findAll()))) : 0
        );

        return $resultado;
    }

}
